package controller;

import DataAcess.Bus;
import Interface.MainGui;
import java.awt.HeadlessException;
import java.util.ArrayList;
import javax.swing.JOptionPane;

/*
 * Class ID	: SE715
 * Student ID	: 02967
 * Student Name : Vu Ngoc Trung
 * Due Date     : Jul 13, 2013
 * I declare that this assignment is my own work in accordance with FPT Policy.
 */
public class SearchByNumberController implements Controller {

    private MainGui form;
    ArrayList<Bus> arrbus;
    controller.Controller controller;
    int mouseSelectedIndex;

    public SearchByNumberController(ArrayList arrbus, controller.Controller controller, Interface.MainGui mainGui) {
        this.arrbus = arrbus;
        form = mainGui;
        this.controller = controller;
    }

    @Override
    public void handleEvent(String event) {

        if (event.equals("Search Number")) {
            SearchNumber();
        }
    }

    public void view(Bus bus) {
        form.lbNameNo.setText(bus.getName());
        form.lbNoNo.setText(Integer.toString(bus.getNumber()));
        form.taGoNo.setText(bus.getGo());
        form.taBackNo.setText(bus.getBack());
        form.taGoNo.setEditable(false);
        form.taBackNo.setEditable(false);
    }

    public void SearchNumber() {

//get number from search textfield        
        int a = 0;
        if (!form.tfSearchNo.getText().trim().equals("")) {
            try {
                a = Integer.parseInt(form.tfSearchNo.getText().trim());
                if (a < 0) {
                    JOptionPane.showMessageDialog(form, "Dữ liệu nhập vào không phù hợp\n"
                            + "Vui lòng kiểm tra lại đầu vào!", "Error", JOptionPane.ERROR_MESSAGE,
                            new javax.swing.ImageIcon(getClass().getResource("/Icon/ErrorMessage.png")));
                }
            } catch (NumberFormatException | HeadlessException e) {
                a = -1;
                JOptionPane.showMessageDialog(form, "Dữ liệu nhập vào không phù hợp\n"
                        + "Vui lòng kiểm tra lại đầu vào!", "Error", JOptionPane.ERROR_MESSAGE,
                        new javax.swing.ImageIcon(getClass().getResource("/Icon/ErrorMessage.png")));
            }
        }

//find the bus that have number equal with number are already accept from search textfield
        if (a >= 0) {
            int i = 0;
            for (Bus bus : arrbus) {
                if (bus.getNumber() == a) {
                    view(bus);
                    i++;
                    break;
                }
            }
            if (i == 0) {
                //show mesage if bus not found
                JOptionPane.showMessageDialog(form, "Không tìm thấy xe " + String.valueOf(a), "Error", JOptionPane.ERROR_MESSAGE,
                        new javax.swing.ImageIcon(getClass().getResource("/Icon/findnumberfail.png")));
            }
        }
    }
}
